Skip to content

glpython's own logo: favicon, apple-touch-icon, the mark in the top bar - #44

Merged
cedricvogel-leo merged 1 commit into
mainfrom
feature/logo
Nov 6, 2026
Merged

cedricvogel-leo merged 1 commit into
mainfrom
feature/logo

Conversation

@cedricvogel-leo

Copy link
Copy Markdown
Collaborator

P41: glpython gets its own logo, a balance bike that is also an expression tree (the saddle a node, the two lines to the wheels edges to two leaves), white on ink #1F3A5F.

What changes

  • Favicon: public/favicon.svg is the logo's file, unchanged (a rounded ink square with the white mark). The <link rel="icon" type="image/svg+xml"> stays.
  • iPad home screen: public/apple-touch-icon.png (180 × 180, full bleed; iOS rounds the corners), and <link rel="apple-touch-icon" href="/apple-touch-icon.png"> in index.html.
  • Top bar: src/GlpythonMark.tsx draws the mark in currentColor, the same drawing as the favicon. It replaces lucide's «Sparkles» in .ide-brand-mark, on the existing ink square, aria-hidden as before. The word «glpython» stays the accessible name.
    • Size: 22 px instead of Sparkles' 16. The mark fills less of its 32-unit box than Sparkles does of its own, so at 16 px it looked smaller than before; at 22 it fills the square as Sparkles did.
  • Removed: public/icons.svg, Vite's template sprite (social icons). Nothing referenced it.

Not changed

  • Web app manifest: the IDE has none, and this doesn't add one. The apple-touch-icon is enough for «Zum Home-Bildschirm». A manifest would only matter for installing it as an app (Android, desktop Chrome).
  • The embed doesn't use Sparkles as a logo. glpython-editor uses it only as the icon in the turtle graphics panel's heading, so nothing changes there.

Checks

  • test:browser (26 checks), lint and the build pass.

  • dist/ has favicon.svg and apple-touch-icon.png, and no longer icons.svg. The page links both icons.

  • Screenshots:

    • the top bar on desktop and iPad portrait;
    • the brand at 16 and 22 px;
    • the favicon at 16 and 32 px on a light and a dark tab strip.

    These are a stand-in for the real tab, which a headless browser can't screenshot.

Going live

Merging deploys the IDE.

After that, each browser shows its own copy for a while:

  • Favicon: browsers cache it hard, so the tab may keep the old one until a reload.
  • Home screen: iPad Safari picks up the apple-touch-icon only for a new home-screen icon; an existing one keeps its old picture.

Manual tests

Desktop:

  1. Chrome with a light and a dark browser theme: the tab shows the bike on ink (reload if it still shows the old icon).
  2. Safari: the same in the tab and in the bookmarks.
  3. The top bar: the bike centred and crisp in the ink square, where Sparkles was.

iPad (Safari):

  1. Open https://glpython-edu.github.io/, then Share → «Zum Home-Bildschirm».
  2. The preview and the home screen show the bike on ink with rounded corners, not a screenshot of the page.
  3. Open the IDE from the home screen: it starts as usual.
  4. The top bar in portrait: only the mark (the word goes at that width, as before), centred.

Follow-ups (not done)

  • In a dark browser theme, the ink square of the favicon is close to the dark tab strip. The white mark stays clear, but a light ring around the square would make the icon itself stand out more. Your call, as it changes the logo.

🤖 Generated with Claude Code

The balance bike that is also an expression tree (the saddle a node,
the lines to the wheels edges to two leaves), white on ink #1F3A5F:
public/favicon.svg replaces Vite's, public/apple-touch-icon.png (180 px,
full bleed) for the iPad home screen, and the mark in currentColor
(GlpythonMark) replaces lucide's Sparkles in the top bar's ink square.
public/icons.svg, the unused Vite template sprite, goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cedricvogel-leo
cedricvogel-leo merged commit cadb84e into main Nov 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant